<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    // Proxy是一个内置的构造函数。
    const obj = {
        userName:"zhangsan",
        age:12
    }
    // Proxy接收两个参数，第一个参数是目标对象，第二个参数是配置对象
    // const obj2 = new Proxy(obj,{});
    // obj.userName = "wangwu";
    // console.log(obj2 === obj,obj.userName,obj2.userName);

    // 读写控制
    const obj2 = new Proxy(obj,{
        // target 目标对象
        // key 操作的属性
        // proxy 代理实例
        get(target,key,proxy){
            // console.log("get");
            // return 100;
            // console.log("get",a,b,c,d)
            return target[key];
        },
        //  target 目标对象
        // key 操作的属性
        // newValue 更改的值
        // proxy 代理实例
        set(target,key,newValue,proxy){
            // console.log("set",target === obj);
            // console.log("set",proxy === obj2);
            target[key] = newValue;
        }
    })
    obj2.userName = "lisi";
    console.log(obj2.userName)

</script>
</html>